1. Field of the Invention
The present invention relates to a system, method, program, and data structures for restricting host access to storage space.
2. Description of the Related Art
In prior art storage systems, one or more host computers access a storage space, such as one or more Direct Access Storage Devices (DASDs), comprising interconnected hard disk drives, through a storage controller. The storage controller manages the flow of data from host systems to DASDs managed by the storage controller. Host systems view the physical storage space as a partition of Logical Unit Numbers (LUNs). The host will access a particular LUN, and the storage controller will translate the LUN identifier to a logical disk that maps to one or more physical disks, e.g., hard disk drives. The storage controller uses the logical disk to map directly to a storage device or DASD. In RAID array systems where data is stripped across multiple hard disk drives, the storage controller will perform additional mapping to determine the location in the RAID array of a particular logical disk. In this way, the storage controller views actual physical storage as one or more logical disks or logical devices.
Many large scale networks may include heterogenous systems, or systems that have incompatible operating systems. For instance, some hosts may operate with the Microsoft Windows NT operating systems, others with the IBM AIX, OS/390, or MVS operating systems, etc.** In such heterogenous systems, host with non-compatible operating systems must boot from separate LUNs. In prior art systems,segregation of heterogeneous systems is accomplish by providing multiple storage controllers and DASD subsystems, and by restricting host access to a particular storage controller and DASD based on the host operating system. Thus, all Windows NT hosts will share one storage controller and all IBM AIX hosts will share another storage controller to avoid any conflicts.
**Windows and NT are registered trademarks of Micosoft Corporation; AIX and OS/390 are registered trademarks of IBM and MVS and Fibre Channel Raid Storage Controller are trademarks of IBM. 
One reason for using multiple storage controllers when hosts have heterogeneous operating systems is that each operating system typically uses LUN 0 as the boot LUN. Thus, to allow hosts having heterogeneous operating systems to use LUN 0, the hosts must be directed to a storage controller that provides LUN 0 as the bootable disk for that operating system.
The problem with the above approach is that it substantially increases the cost of the storage subsystem because redundant storage controllers and DASDs must be provided for the number of non-compatible operating systems used by hosts in the network. Such redundancy would have to be provided to accommodate heterogenous hosts even if the storage space and performance of a single storage controller and storage subsystem is sufficient to accommodate the storage needs of the entire heterogeneous system. Such unnecessary redundancy may increase the costs of the system substantially while only providing minimal improvements in performance.
Thus, there is a need in the art to provide improved methods for allowing hosts to access a storage subsystem and assign LUNs to hosts to avoid any conflicts.
To overcome the limitations in the prior art described above, preferred embodiments disclose a method, system, program, and data structures for restricting host access to at least one logical device. Each logical device comprises a section of physical storage space that is non-overlapping with the physical storage space associated with other logical devices. At least one logical device and at least one host are assigned to a cluster group. A cluster group is defined such that hosts that are not in a particular cluster group cannot access the logical devices that are assigned to the cluster group. Further, within each cluster group, a logical number is assigned to each logical device in the cluster group such that no host member of that cluster group uses the assigned logical number to access another logical device. The hosts in the cluster group use the logical number to access the logical device to which the logical number is assigned.
In further embodiments, an access request is received including as parameters one input logical number from one host. A determination is made as to whether the host is capable of accessing one logical device associated with the input logical number. The host is permitted access to the logical device associated with the logical number if there is a logical device associated with the input logical number.
In yet further embodiments, a host list indicates all available hosts. All hosts in the host list can access a logical device assigned one logical number and not assigned to a cluster group. For each host in the host list, there is a host map indicating each logical number accessible to the host. A request is received including as parameters one input logical device and input cluster group to add the input logical device to the input cluster group. A determination is then made as to whether the input logical device is accessible to all hosts. The host map for each host that is not assigned to the input cluster group is updated to indicate that the input logical device is not accessible if the input logical device is accessible to all hosts.
In further embodiments, when receiving a request to add the input logical device to the input logical cluster, a determination is made as to whether the input logical device is not assigned one logical number. If the input logical device is not assigned one logical number, then a determination is made of one logical number that is not used by any host in the input cluster group to access one logical device. The determined logical number is assigned to the input logical device and the host map for each host that is assigned to the input cluster group is updated to indicate that the determined logical number is assigned to the input logical device. After updating the host maps, each host in the input cluster group can use the determined logical number to access the input logical device.
In even further embodiments, a request is received including as parameters one input logical device to make accessible to all hosts in the host list. A determination is made of one cluster group including the input logical device. A determination is also made of the logical number for the input logical device and of any host that is not in the determined cluster group that uses the determined logical number to access another logical device. If no other host that is not in the determined cluster group uses the determined logical number, then the host map for each host in the host list is updated to indicate that the determined logical number is assigned to the input logical device. After updating the host maps, all the hosts in the host list can use the determined logical number to access the input logical device. Otherwise, if at least one host that is not in the determined cluster group uses the determined logical number, then a determination is made of one unused logical number that is not used by any host in the host list to access one logical device. In such case, the host map for each host in the host list is updated to indicate that the determined unused logical number is assigned to the input logical device. All the hosts in the host list can use the determined unused logical number to access the input logical device.
Preferred embodiments provide a technique for restricting host access to particular logical devices, such as physical disks, in a storage system. This technique assigns restricted logical devices to cluster groups so that only hosts assigned to the cluster group can access the logical device assigned to the cluster group. Preferred embodiments further provide mechanisms for reusing logical numbers that hosts use to access logical disks in a manner that ensures that within any one cluster group, no logical number would map to multiple logical disks. However, the same logical number may be concurrently used among cluster groups as long as no single host could use a logical number to access two different logical disks as this is an invalid state.
A single storage controller implementing the preferred embodiment technique for restricting host access to particular logical numbers can allow heterogeneous hosts access to the storage device, but restrict homogeneous groups of hosts to their own logical devices in the storage space by forming cluster groups of homogeneous hosts. This would preclude a host from accessing a cluster group and the storage space associated with the cluster group that is used by other incompatible hosts. Further, with the use of cluster groups, hosts with different operating systems can all use LUN 0 as the boot disk as long as those hosts with different operating systems are assigned to separate cluster groups, i.e., hosts are assigned to cluster groups based on the operating system they use. This would prevent a host from using the LUN 0 boot disk associated with a different operating system.